import axios from 'axios'
import { ElMessage } from 'element-plus'
import router from '@/router'

const request = axios.create({
  baseURL: '/api',
  timeout: 60000,
  headers: {
    'Content-Type': 'application/json;charset=UTF-8'
  }
})

// 请求拦截器：每次请求前检查是否有 Token，并添加到 headers
request.interceptors.request.use(config => {
  const token = localStorage.getItem('token') // 从本地存储获取 Token
  if (token) {
    config.headers['satoken'] = `${token}` // 携带 Token
  }
  return config
}, error => {
  return Promise.reject(error)
})

// 响应拦截器：统一处理响应和错误
request.interceptors.response.use(response => {
  if (response.data.code === 401) { // 假设 401 表示 Token 过期
    ElMessage.error('登录已过期，请重新登录')
    localStorage.removeItem('token') // 清除 Token
    router.push('/login') // 跳转到登录页
  }
  return response.data // 直接返回后端数据（去掉 axios 的包装）
}, error => {
  ElMessage.error(error.response?.data?.message || '请求失败')
  return Promise.reject(error)
})

export default request